package com.example.mykotlin.base.config.converter

import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Date
import org.apache.commons.lang3.StringUtils
import org.springframework.core.convert.converter.Converter

class StringToDateConverter : Converter<String, Date> {
    override fun convert(source: String): Date? {
        return if (StringUtils.isBlank(source)) null else
            try {
                SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(source)
            } catch (pe: ParseException) {
                // 请求输入与响应输出 统一格式，不做格式兼容

                try {
                    SimpleDateFormat("yyyy-MM-dd").parse(source)
                } catch (pe: ParseException) {
                    null
                }
                // 格式兼容
                //  try {
                //      SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(source)
                //  } catch (pe: ParseException) {
                //      try {
                //          SimpleDateFormat("yyyy-MM-dd").parse(source)
                //      } catch (pe: ParseException) {
                //          try {
                //              SimpleDateFormat("yyyy/MM/dd").parse(source)
                //          } catch (pe: ParseException) {
                //              null
                //          }
                //      }
                //  }
            }


    }
}